@echo off
REM ===========================================
REM Git 配置设置脚本 (Windows 版本)
REM 自动配置项目的 Git 相关设置
REM ===========================================

echo 🚀 开始配置 Git 设置...

REM 检查是否在 Git 仓库中
git rev-parse --git-dir >nul 2>&1
if errorlevel 1 (
    echo ❌ 当前目录不是 Git 仓库
    echo 请先运行: git init
    pause
    exit /b 1
)

REM 设置提交消息模板
echo 📝 设置提交消息模板...
git config commit.template .gitmessage

REM 设置 Git Hooks 路径
echo 🔗 设置 Git Hooks...
git config core.hooksPath .githooks

REM 设置换行符处理
echo 📄 配置换行符处理...
git config core.autocrlf false
git config core.eol lf

REM 设置默认编辑器
echo ✏️  配置默认编辑器...
where code >nul 2>&1
if not errorlevel 1 (
    git config core.editor "code --wait"
    echo ✅ 设置 VSCode 为默认编辑器
) else (
    git config core.editor "notepad"
    echo ✅ 设置记事本为默认编辑器
)

REM 设置合并工具
where code >nul 2>&1
if not errorlevel 1 (
    git config merge.tool vscode
    git config mergetool.vscode.cmd "code --wait $MERGED"
    echo ✅ 设置 VSCode 为合并工具
)

REM 设置别名
echo 🔧 设置 Git 别名...
git config alias.st status
git config alias.co checkout
git config alias.br branch
git config alias.ci commit
git config alias.unstage "reset HEAD --"
git config alias.last "log -1 HEAD"
git config alias.lg "log --color --graph --pretty=format:'%%Cred%%h%%Creset -%%C(yellow)%%d%%Creset %%s %%Cgreen(%%cr) %%C(bold blue)<%%an>%%Creset' --abbrev-commit"

REM 设置推送默认行为
echo 📤 配置推送设置...
git config push.default simple
git config push.followTags true

REM 设置拉取默认行为
echo 📥 配置拉取设置...
git config pull.rebase false

REM Windows 特定设置
echo 🪟 配置 Windows 特定设置...
git config core.filemode false
git config core.ignorecase false

REM 显示当前配置
echo.
echo 🎉 Git 配置完成！
echo.
echo 📋 当前配置摘要:
for /f "tokens=*" %%i in ('git config commit.template') do echo   提交模板: %%i
for /f "tokens=*" %%i in ('git config core.hooksPath') do echo   Hooks 路径: %%i
for /f "tokens=*" %%i in ('git config core.editor') do echo   默认编辑器: %%i
for /f "tokens=*" %%i in ('git config core.autocrlf') do echo   autocrlf: %%i
for /f "tokens=*" %%i in ('git config core.eol') do echo   eol: %%i
for /f "tokens=*" %%i in ('git config push.default') do echo   推送策略: %%i
echo.

echo 💡 使用建议:
echo   - 使用 'git ci' 代替 'git commit'
echo   - 使用 'git st' 代替 'git status'
echo   - 使用 'git lg' 查看美化的提交历史
echo   - 提交消息将自动验证格式
echo.

echo 📚 提交消息格式:
echo   feat(scope): add new feature
echo   fix(scope): resolve bug issue
echo   docs(scope): update documentation
echo.

echo ✅ 设置完成！现在可以开始使用规范化的 Git 工作流了。
pause 